package com.ulife.order.api.response.cms;

import com.ulife.common.gateway.utils.annotation.Description;
import com.ulife.order.api.response.AddressInfo;
import com.ulife.order.api.response.ItemInfo;
import com.ulife.order.api.response.SaleOrderPayInfo;
import java.io.Serializable;
import java.util.List;

/**
 * Created by LIAOLS on 2016/6/12.
 */
@Description("订单详情")
public class OrderInfoResponse implements Serializable {

    @Description("订单id")
    public long id;
    @Description("订单编号")
    public String saleNo;
    @Description("订单日期")
    public long orderTime;
    @Description("配送日期")
    public long shipDate;
    @Description("订单分类")
    public String orderCategory;
    @Description("订单团购ID")
    public long groupId;
    @Description("商品总金额")
    public double subAmount;
    @Description("优惠费用")
    public double promotionDiscount;
    @Description("优惠券商品优惠费用")
    public double productCouponDiscount;
    @Description("运费")
    public double shipFee;
    @Description("运费折扣")
    public double shipFeeDiscount;
    @Description("优惠券运费折扣")
    public double shipFeeCouponDiscount;
    @Description("订单总金额")
    public double totalAmount;
    @Description("支付金额")
    public double paidAmount;
    @Description("待支付金额")
    public double waitPaidAmount;
    @Description("包裹数量")
    public int shipmentCount;
    @Description("商品数量")
    public int productCount;
    @Description("订单状态")
    public int status;
    @Description("订单中文状态")
    public String statusValue;
    @Description("支付状态")
    public int payStatus;
    @Description("支付类型")
    public String payType;
    @Description("订单创建人")
    public String createdBy;
    @Description("用户ID")
    private Long customerId;
    @Description("地址信息")
    public AddressInfo address;
    @Description("商品信息")
    public List<ItemInfo> items;
    @Description("订单备注")
    public List<SoCommentsDTO> comments;

    @Description("终端类型")
    public String terminal;

    @Description("销售渠道")
    public String saleChannel;

    @Description("订单支付记录")
    public List<SaleOrderPayInfo> payInfoList;

    @Description("订单退款记录")
    public List<SaleOrderRefundInfo> refundList;

    @Description("订单商品合计")
    public double itemsTotalPrice ;

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getSaleNo() {
        return saleNo;
    }

    public void setSaleNo(String saleNo) {
        this.saleNo = saleNo;
    }

    public long getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(long orderTime) {
        this.orderTime = orderTime;
    }

    public long getShipDate() {
        return shipDate;
    }

    public void setShipDate(long shipDate) {
        this.shipDate = shipDate;
    }

    public String getOrderCategory() {
        return orderCategory;
    }

    public void setOrderCategory(String orderCategory) {
        this.orderCategory = orderCategory;
    }

    public long getGroupId() {
        return groupId;
    }

    public void setGroupId(long groupId) {
        this.groupId = groupId;
    }

    public double getSubAmount() {
        return subAmount;
    }

    public void setSubAmount(double subAmount) {
        this.subAmount = subAmount;
    }

    public double getPromotionDiscount() {
        return promotionDiscount;
    }

    public void setPromotionDiscount(double promotionDiscount) {
        this.promotionDiscount = promotionDiscount;
    }

    public double getProductCouponDiscount() {
        return productCouponDiscount;
    }

    public void setProductCouponDiscount(double productCouponDiscount) {
        this.productCouponDiscount = productCouponDiscount;
    }

    public double getShipFee() {
        return shipFee;
    }

    public void setShipFee(double shipFee) {
        this.shipFee = shipFee;
    }

    public double getShipFeeDiscount() {
        return shipFeeDiscount;
    }

    public void setShipFeeDiscount(double shipFeeDiscount) {
        this.shipFeeDiscount = shipFeeDiscount;
    }

    public double getShipFeeCouponDiscount() {
        return shipFeeCouponDiscount;
    }

    public void setShipFeeCouponDiscount(double shipFeeCouponDiscount) {
        this.shipFeeCouponDiscount = shipFeeCouponDiscount;
    }

    public double getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(double totalAmount) {
        this.totalAmount = totalAmount;
    }

    public double getPaidAmount() {
        return paidAmount;
    }

    public void setPaidAmount(double paidAmount) {
        this.paidAmount = paidAmount;
    }

    public double getWaitPaidAmount() {
        return waitPaidAmount;
    }

    public void setWaitPaidAmount(double waitPaidAmount) {
        this.waitPaidAmount = waitPaidAmount;
    }

    public int getShipmentCount() {
        return shipmentCount;
    }

    public void setShipmentCount(int shipmentCount) {
        this.shipmentCount = shipmentCount;
    }

    public int getProductCount() {
        return productCount;
    }

    public void setProductCount(int productCount) {
        this.productCount = productCount;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getStatusValue() {
        return statusValue;
    }

    public void setStatusValue(String statusValue) {
        this.statusValue = statusValue;
    }

    public int getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(int payStatus) {
        this.payStatus = payStatus;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public AddressInfo getAddress() {
        return address;
    }

    public void setAddress(AddressInfo address) {
        this.address = address;
    }

    public List<ItemInfo> getItems() {
        return items;
    }

    public void setItems(List<ItemInfo> items) {
        this.items = items;
    }

    public List<SoCommentsDTO> getComments() {
        return comments;
    }

    public void setComments(List<SoCommentsDTO> comments) {
        this.comments = comments;
    }

    /**
     * 终端
     * @return
     */
    public String getTerminal() {
        return terminal;
    }

    public void setTerminal(String terminal) {
        this.terminal = terminal;
    }

    public String getSaleChannel() {
        return saleChannel;
    }

    public void setSaleChannel(String saleChannel) {
        this.saleChannel = saleChannel;
    }

    public List<SaleOrderPayInfo> getPayInfoList() {
        return payInfoList;
    }

    public void setPayInfoList(List<SaleOrderPayInfo> payInfoList) {
        this.payInfoList = payInfoList;
    }

    public List<SaleOrderRefundInfo> getRefundList() {
        return refundList;
    }

    public void setRefundList(List<SaleOrderRefundInfo> refundList) {
        this.refundList = refundList;
    }

    /**
     * 获取订单商品金额合计
     * @return
     */
    public double getItemsTotalPrice() {
        return itemsTotalPrice;
    }

    /**
     *  设置订单商品金额合计
     * @param itemsTotalPrice
     */
    public void setItemsTotalPrice(double itemsTotalPrice) {
        this.itemsTotalPrice = itemsTotalPrice;
    }
}
